-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
callautomation/2023-03-06-ga1 #23091
Conversation
Hi, @minwoolee-msft Thanks for your PR. I am workflow bot for review process. Here are some small tips. Any feedback about review process or workflow bot, pls contact swagger and tools team. [email protected] |
Swagger Validation Report
|
compared swaggers (via Oad v0.10.4)] | new version | base version |
---|---|---|
communicationservicescallautomation.json | 2023-03-06(e669e35) | 2022-04-07-preview(main) |
The following breaking changes are detected by comparison with the latest preview version:
Only 30 items are listed, please refer to log for more details.
️️✔️
CredScan succeeded [Detail] [Expand]
There is no credential detected.
️⚠️
LintDiff: 16 Warnings warning [Detail]
compared tags (via openapi-validator v2.1.2) | new version | base version |
---|---|---|
package-2023-03-06 | package-2023-03-06(e669e35) | default(main) |
[must fix]The following errors/warnings are introduced by current PR:
Rule | Message | Related RPC [For API reviewers] |
---|---|---|
OperationId should be of the form 'Noun_Verb' Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L25 |
||
OperationId should be of the form 'Noun_Verb' Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L82 |
||
OperationId should be of the form 'Noun_Verb' Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L139 |
||
OperationId should be of the form 'Noun_Verb' Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L193 |
||
'DELETE' operation 'CallConnection_HangupCall' should use method name 'Delete'. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L285 |
||
Since operation response has model definition in array type, it should be of the form '_list'. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L565 |
||
OperationId for get method on a collection should contain 'List' Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L571 |
||
Parameter should have a description. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L625 |
||
The summary and description values should not be same. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L737 |
||
Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L745 |
||
Path parameter should specify a maximum length (maxLength) and characters allowed (pattern). Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L752 |
||
Error response should contain a x-ms-error-code header. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L770 |
||
'DELETE' operation 'CallRecording_StopRecording' should use method name 'Delete'. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L884 |
||
Booleans properties are not descriptive in all cases and can make them to use, evaluate whether is makes sense to keep the property as boolean or turn it into an enum. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L1433 |
||
Schema should have a description or title. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L2070 |
||
Property should have a description. Location: CallAutomation/stable/2023-03-06/communicationservicescallautomation.json#L2073 |
The following errors/warnings exist before current PR submission:
Only 30 items are listed, please refer to log for more details.
️️✔️
Avocado succeeded [Detail] [Expand]
Validation passes for Avocado.
️️✔️
ApiReadinessCheck succeeded [Detail] [Expand]
️⚠️
~[Staging] ServiceAPIReadinessTest: 0 Warnings warning [Detail]
API Test is not triggered due to precheck failure. Check pipeline log for details.
️️✔️
SwaggerAPIView succeeded [Detail] [Expand]
️️✔️
CadlAPIView succeeded [Detail] [Expand]
️️✔️
TypeSpecAPIView succeeded [Detail] [Expand]
️️✔️
ModelValidation succeeded [Detail] [Expand]
Validation passes for ModelValidation.
️️✔️
SemanticValidation succeeded [Detail] [Expand]
Validation passes for SemanticValidation.
️️✔️
PoliCheck succeeded [Detail] [Expand]
Validation passed for PoliCheck.
️️✔️
PrettierCheck succeeded [Detail] [Expand]
Validation passes for PrettierCheck.
️️✔️
SpellCheck succeeded [Detail] [Expand]
Validation passes for SpellCheck.
️️✔️
Lint(RPaaS) succeeded [Detail] [Expand]
Validation passes for Lint(RPaaS).
️️✔️
CadlValidation succeeded [Detail] [Expand]
Validation passes for CadlValidation.
️️✔️
TypeSpec Validation succeeded [Detail] [Expand]
Validation passes for TypeSpec Validation.
️️✔️
PR Summary succeeded [Detail] [Expand]
Validation passes for Summary.
Swagger pipeline restarted successfully, please wait for status update in this comment. |
Generated ApiView
|
Hi @minwoolee-msft, Your PR has some issues. Please fix the CI sequentially by following the order of
|
Hi, @minwoolee-msft. Your PR has no update for 14 days and it is marked as stale PR. If no further update for over 14 days, the bot will close the PR. If you want to refresh the PR, please remove |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
Hi, @minwoolee-msft. Your PR has no update for 14 days and it is marked as stale PR. If no further update for over 14 days, the bot will close the PR. If you want to refresh the PR, please remove |
/azp run |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
Swagger 2.0 does not support this Reverting back to include headers in each operation like before
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
"$ref": "../../../Common/stable/2022-07-13/common.json#/definitions/PhoneNumberIdentifierModel" | ||
}, | ||
"CommunicationUserIdentifierModel": { | ||
"$ref": "../../../Common/stable/2022-07-13/common.json#/definitions/CommunicationUserIdentifierModel" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting... I've never seen anyone pull the ref into the definition and then refer to the definition all over the spec. Normally folks just point at the ref directly. I think this is fine, but it's something to watch for during code gen to make sure AutoRest can handle the double layer of indirection correctly.
List of changes for GA SDK: Autorest.md to point to main stable swagger on api-specs. Wait for this PR to be finished: Azure/azure-rest-api-specs#23091 Autorest.md’s tag to be pointing to stable version tag. tag: package-2023-03-06 Update ServiceVersion in ClientOption: 2023-03-06 Regenerate Autorest with above GA swagger README.md to be updated to accommodate GA version. Remove –prerelease tag Remove any section that presents any feature that should not be included Changelog.md: Update Release history to be latest version (1.0.0), Please look at each languages guideline’s section “Package version number” for details on how each language update this. Changelog.md: With version updated and new section, add all breaking changes. [GA_Release_Checklist.docx](https://microsoft.sharepoint-df.com/:w:/t/ServerCalling/EV3lTIkFsQdJpy7s3J0gutkB0fBxdz-p9Ljtgdur9l8aEQ?e=NNTSK8) (look at this page for what needs to be included in the changelog) (Nice to have) Need more samples under Samples forlder. Features to be excluded: Remove Custom HMAC support MediaStreaming features (note this is also included in part of CreateCall/AnswerCall) Play,PlaytoAll,Recognize,Cancel are only media feature required – remove all other media methods Only Recognize DTMF is to be included in GA. Exclude other Recognize modes such as Choices, Speech, and continous Remove all new events that were added with new media features ChoiceResult ContinousDTMFRecognition SendDTMF All CustomContext related in Signaling methods All AzureCognitive related features All mute/unmute features All play source except FileSource (SSMLSource, TextSource to be excluded) Recording’s External Storage related features (such as BlobStorage) Remove all test associated with removed features By Removing method and models above, also remove all orphaned model/enums that are no longer in use (such as, GenderType), Use APIView to view any orphaned models
Data Plane API - Pull Request
Azure Communication Services Call Automation provides developers the ability to build server-based, intelligent call workflows, and call recording for voice and PSTN channels.
This is for the first GA release for ACS's Call Automation.
API Info: The Basics
CreateCall: Allows you to create a new outbound call. Once given information (target of the call, such as their phone number), Call Automation service will call the target end try to establish a call.
AnswerCall: Answer incoming call. This is another way to establish a call. For example, you can purchase Direct Offering phone number from Azure Portal to answer incoming call with Call Automation for that phone number.
CallConnectionId: CallConnectionId is returned when you establish a call with either Create or Answer above. This Id is to be used to do subsequent actions for the call. For example, if I want to play a media file in the call, pass both CallConnectionId and media file endpoint. Call Automation service will play the media file in the call.
Callback Events: Because of nature of a phone call, during the call, Call Automation Service will send back asynchronous events to notify the state of the call. Such as CallConnected and ParticipantsUpdated event.
Callback Uri: Expanding above Callback events - here is an example. When you CreateCall, you will get response of 201 right after Call Automation service received the request. However, this does not mean the call is established. It is dialing. Once the target call receiver answers their phone, the call is established and CallConnected event is sent. This event is sent back as Webhook to CallbackURi provided in CreateCall/AnswerCall.
Is this review for (select one):
Change Scope
This is GA release of previous preview release. See previous private preview Pull Request here: #19409
Contact us!
The Azure API Review Board is dedicated to helping you create amazing APIs. You can read about our mission and learn more about our process on our wiki.
Click here for links to tools, specs, guidelines & other good stuff
Tooling
Guidelines & Specifications
Helpful Links
fix #23092